package cn.com.bluemoon.daps.model.service;

import cn.com.bluemoon.daps.common.mp.IBmService;
import cn.com.bluemoon.daps.model.entity.DapDataModelUserAccredit;
import cn.com.bluemoon.daps.model.service.impl.DapDataModelUserAccreditServiceImpl;

import java.util.List;

/**
 * <p>
 * 模型用户授权表 服务类
 * </p>
 *
 * @author admin
 * @since 2021-02-22
 */
public interface DapDataModelUserAccreditService extends IBmService<DapDataModelUserAccredit> {

    /**
     * 增加模型的创建人和模型管理者（新增中写入创建者+模型管理者、编辑中创建者不变+调整模型管理者）
     * 存在模型管理者就是创建者
     *
     * @param modelId 模型id
     * @param modelManager 管理者账号
     */
    void changUserAccreditByModelSaveOrUpdate(String modelId, String modelManager);

    /**
     * 更新模型授权信息
     *
     * @param modelId  模型id
     * @param accounts 账号
     * @return 结果
     */
    boolean upsertAccredit(String modelId, List<String> accounts);

    /**
     * 获取用户信息+是否已选择
     *
     * @param modelId 模型id
     * @return x
     */
    List<DapDataModelUserAccreditServiceImpl.ModelUserAccreditVo> queryUserDtos(String modelId);

    /**
     * 删除模型
     * @param isLogic 是否逻辑
     * @param modelId 模型id
     */
    void deleteByModelId(boolean isLogic, String modelId);

    /**
     * 新增模型的用户授予模型权限
     */
    void saveCreateBy(String modelId, String createBy);
}
